package Controlador;

import Modelo.Listas;
import Reportes.ReporteAsigVehiculos;
import Vista.Mensajes;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.util.Date;

public class ControladorReporteAsigVehiculo implements ActionListener {

    private ReporteAsigVehiculos AsigVeh;
    private Listas list;

    public ControladorReporteAsigVehiculo(Listas lis) {
        list = lis;
        AsigVeh = new ReporteAsigVehiculos();
        AsigVeh.agregarListener(this);
        AsigVeh.setVisible(true);
        cargarCombo();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(AsigVeh.getCmbPlacas())) {
            String cadena;
            cadena = AsigVeh.getCmbPlacas().getSelectedItem().toString();
            if (cadena.equals("Seleccione:")) {
                limpiar();
            }
                llenarDatos();
            
        }
    }

    private void cargarCombo() {
        for (int i = 0; i < list.getListaUnidadT().size(); i++) {
            AsigVeh.getCmbPlacas().addItem(list.getListaUnidadT().get(i).getPlaca());
        }
    }

    private void llenarDatos() {
        String placa, tipo, dest, soc, coop, cap, fecha, viaje;
        int pasj;        
        placa = AsigVeh.getCmbPlacas().getSelectedItem().toString();
        for (int i = 0; i < list.getListaUnidadT().size(); i++) 
        {
            if (list.getListaUnidadT().get(i).getPlaca().equals(placa)) {
                tipo = list.getListaUnidadT().get(i).getDescripcion();
                cap = list.getListaUnidadT().get(i).getCapacidad().toString();
                soc = list.getListaUnidadT().get(i).getCISocio();
                coop= list.getListaUnidadT().get(i).getCodCooperativa();
                AsigVeh.getTxtTipoVehi().setText(tipo);
                AsigVeh.getTxtCapacidad().setText(cap);
                //AsigVeh.getTxtSocio().setText(soc);
                for (int j = 0; j < list.getListaSocio().size(); j++) {
                    if(list.getListaSocio().get(j).getCedula().equals(soc))
                    {
                        soc = soc + " - " + list.getListaSocio().get(j).getNombre();
                        AsigVeh.getTxtSocio().setText(soc);
                    }
                }

                for (int k = 0; k < list.getListaCoop().size(); k++) 
                {
                    if(list.getListaCoop().get(k).getRifC().equals(coop))
                    {
                        coop = coop + " - " + list.getListaCoop().get(k).getNombreC();
                        AsigVeh.getTxtCooperativa().setText(coop);
                    }
                }
                
            }
        }
        for (int j = 0; j < list.getListaViajes().size(); j++) 
        {
            if (list.getListaViajes().get(j).getPlacaVehiculo().equals(placa)) {
                DateFormat df = DateFormat.getDateInstance();
                fecha = df.format(list.getListaViajes().get(j).getFechaSalida());
                dest = list.getListaViajes().get(j).getDestino();
                pasj = list.getListaViajes().get(j).getCantPasajeros();
                viaje = list.getListaViajes().get(j).getCodViaje();
                AsigVeh.getjTableAsignacionesV().setValueAt(viaje, j, 0);
                AsigVeh.getjTableAsignacionesV().setValueAt(fecha, j, 1);
                AsigVeh.getjTableAsignacionesV().setValueAt(dest, j, 2);
                AsigVeh.getjTableAsignacionesV().setValueAt(pasj, j, 3);
            } 
            /*else {
                Mensajes.Aviso("El vehiculo no ha tenido ninguna asignacion", "");
                AsigVeh.getCmbPlacas().requestFocusInWindow();
                return;
            }*/            
        }
        
    }

    private void limpiar() {
        AsigVeh.getTxtTipoVehi().setText("");
        AsigVeh.getTxtCapacidad().setText("");
        AsigVeh.getTxtSocio().setText("");
        AsigVeh.getTxtCooperativa().setText("");
        int tamT = AsigVeh.getjTableAsignacionesV().getRowCount();
        for (int i = 0; i < tamT; i++) {
            AsigVeh.getjTableAsignacionesV().setAutoResizeMode(0);
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 1);
            AsigVeh.getjTableAsignacionesV().setValueAt("", i, 2);
        }
    }
}
